package com.wiselink.naver.productcatalog.response;

import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import java.util.List;

/**
 * 类别
 */
@Getter
@Setter
@ToString
public class Category {
    /**
     * 完整类别名称
     */
    private String wholeCategoryName;
    /**
     * 类别 ID
     */
    private String id;
    /**
     * 类别名称
     */
    private String name;
    /**
     * 是否为叶类别
     */
    private boolean last;
    /**
     * （例外类别列表）
     * (예외 카테고리 목록)
     * Items Enum: E_COUPON ADULT MARINE_PRODUCTS REVIEW_UNEXPOSE CHILD_CERTIFICATION ORIGINAREA_PRODUCTS GREEN_PRODUCTS KC_CERTIFICATION SAFE_CRITERION AFFILIATE TRADITIONAL_ALCOHOL OPTION_PRICE BOOK_CHILD BOOK BOOK_EBOOK BOOK_AUDIO BOOK_MAGAZINE BOOK_USED BOOK_OVERSEAS BOOK_FREE PERFORMANCE FREE_RETURN_INSURANCE REGULAR_SUBSCRIPTION RENTAL_SUBSCRIPTION VINTAGE_CITY SEONE_AI_ASSISTANT_UNEXPOSE GROUP_PRODUCT_MAX MANUFACTURE_DEFINE_NO
     * E_COUPON(E쿠폰), ADULT(성인), MARINE_PRODUCTS(수산물), REVIEW_UNEXPOSE(구매평 미노출), CHILD_CERTIFICATION(어린이제품 인증 대상), ORIGINAREA_PRODUCTS(원산지 입력 대상), GREEN_PRODUCTS(친환경 인증 대상), KC_CERTIFICATION(KC 인증 대상), SAFE_CRITERION(안전기준준수대상), AFFILIATE(어필리에이트), TRADITIONAL_ALCOHOL(전통주), OPTION_PRICE(옵션가 제한 예외 카테고리), BOOK(도서_일반), BOOK_EBOOK(도서_E북), BOOK_AUDIO(도서_오디오북), BOOK_MAGAZINE(도서_잡지), BOOK_USED(도서_중고), BOOK_OVERSEAS(도서_해외), BOOK_FREE(도서_정가제free), PERFORMANCE(문화비_소득공제), FREE_RETURN_INSURANCE(반품안심케어), REGULAR_SUBSCRIPTION(정기구독), RENTAL_SUBSCRIPTION(렌탈), MANUFACTURE_DEFINE_NO(품번)
     */
    private List<String> exceptionalCategories;
    /**
     * 验证信息列表
     * 인증 정보 목록
     */
    private List<CertificationInfo> certificationInfos;

    /**
     * 验证信息
     */
    @Getter
    @Setter
    @ToString
    public static class CertificationInfo {
        /**
         * 认证类别 ID
         * 인증 카테고리 ID
         */
        private Long id;
        /**
         * 认证名
         * 인증명
         */
        private String name;
        /**
         * 认证类型列表
         * 인증 종류 목록
         * Items Enum: KC_CERTIFICATION CHILD_CERTIFICATION GREEN_PRODUCTS PARALLEL_IMPORT OVERSEAS ETC
         * KC_CERTIFICATION(KC 인증 대상), CHILD_CERTIFICATION(어린이제품 인증 대상), GREEN_PRODUCTS(친환경 인증 대상), PARALLEL_IMPORT(병행수입), OVERSEAS(구매대행), ETC(기타 인증 유형)
         */
        private List<String> kindTypes;
        /**
         * 绿色农产品与否
         * 친환경농산물 여부
         */
        private Boolean green;
        /**
         * （认证标志类型）
         * (인증마크 타입)
         * Enum: KC ORGANIC_AGRICULTURAL_PROD ORGANIC_ANIMAL_PROD NON_PESTICIDE NON_ANTIBIOTIC LOW_PESTICIDE GAP AGRICULTURAL_TRACEABILITY PROCESSED_FOOD_KS TRADITIONAL_FOOD ORGANIC_PROCESSED_FOOD QUALITY_SEAFOOD ECO_SEAFOOD HACCP GMP SAFETY SIX_INDUSTRY ANIMAL_WELFARE FOOD_MASTER ECO_PROCESSED_FOOD ECO_ORGANIC_ANIMAL_PROD TRADITIONAL_SEAFOOD SOCIAL_ENTERPRISE VILLAGE_ENTERPRISE SPECIAL_SEAFOOD SEA_ORGANIC_PROCESSED_FOOD SEA_ORGANIC_PROD SEA_NON_ANTIBIOTIC SEA_NON_ACTIVE_TREATMENT ALCOHOL LIVING_CHEMISTRY_SAFETY ECO_FRIENDLY VEGAN VEGAN_STANDARD_CERT LOW_CARBON OVERSEAS_PETA OVERSEAS_V_LABEL OVERSEAS_VEGAN_SOCIETY OVERSEAS_EVE_VEGAN ECO_OVERSEAS_MSC ECO_OVERSEAS_USDA ECO_OVERSEAS_ECOCERT ECO_OVERSEAS_FSC ECO_OVERSEAS_FAIR_TRADE ECO_OVERSEAS_CARBON_TRUST
         */
        private String certificationMarkType;
        /**
         * 是否互用认证
         * 인증 상호 사용 여부
         */
        private Boolean companyName;
        /**
         * 是否使用认证日期
         * 인증 일자 사용 여부
         */
        private Boolean certificationDate;
        /**
         * 是否属于KC平行进口豁免对象
         * KC 병행수입 면제 대상 여부
         */
        private Boolean kcParallelImportExemptionObject;
        /**
         * 非必需与否（无认证编号）
         * 비필수 여부(인증번호 없음)
         */
        private Boolean nonEssential;
    }
}
